﻿2026-06-04T13:05:23.1058198Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T13:05:23.1058804Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T13:05:23.1080113Z shell: /usr/bin/bash -e {0}
2026-06-04T13:05:23.1080554Z ##[endgroup]
2026-06-04T13:05:23.1298218Z Requirement quality findings (17); 129 requirements queued for agent review:
2026-06-04T13:05:23.1300854Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T13:05:23.1303740Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-04T13:05:23.1305915Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T13:05:23.1308614Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T13:05:23.1311277Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T13:05:23.1313152Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T13:05:23.1315034Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T13:05:23.1318156Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T13:05:23.1321041Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T13:05:23.1323059Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T13:05:23.1324898Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T13:05:23.1326346Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T13:05:23.1327890Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T13:05:23.1330281Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T13:05:23.1332433Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T13:05:23.1333956Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T13:05:23.1335354Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T13:05:23.1335379Z 
2026-06-04T13:05:23.1335894Z # Requirement quality review
2026-06-04T13:05:23.1335914Z 
2026-06-04T13:05:23.1337087Z You are reviewing 129 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T13:05:23.1338278Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T13:05:23.1339724Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T13:05:23.1340557Z this command's output. Your task is the rubric items below.
2026-06-04T13:05:23.1340580Z 
2026-06-04T13:05:23.1341021Z ## Rubric
2026-06-04T13:05:23.1341041Z 
2026-06-04T13:05:23.1342461Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T13:05:23.1343737Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T13:05:23.1344858Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T13:05:23.1345591Z - **active-voice** — clear subject and active verb.
2026-06-04T13:05:23.1345616Z 
2026-06-04T13:05:23.1346862Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T13:05:23.1347327Z clear concerns.
2026-06-04T13:05:23.1347361Z 
2026-06-04T13:05:23.1347821Z ## Requirements
2026-06-04T13:05:23.1348171Z 
2026-06-04T13:05:23.1348660Z ### REQ-ARCH-1
2026-06-04T13:05:23.1349348Z - Title: Many small acyclically-layered crates
2026-06-04T13:05:23.1350007Z - Required stages: impl
2026-06-04T13:05:23.1350027Z 
2026-06-04T13:05:23.1350458Z ### REQ-ARCH-2
2026-06-04T13:05:23.1351316Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T13:05:23.1351961Z - Required stages: impl
2026-06-04T13:05:23.1351982Z 
2026-06-04T13:05:23.1352415Z ### REQ-ARCH-3
2026-06-04T13:05:23.1353555Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T13:05:23.1354053Z - Required stages: impl, unit
2026-06-04T13:05:23.1354071Z 
2026-06-04T13:05:23.1354516Z ### REQ-ARCH-4
2026-06-04T13:05:23.1355429Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T13:05:23.1355921Z - Required stages: impl, unit
2026-06-04T13:05:23.1355941Z 
2026-06-04T13:05:23.1356410Z ### REQ-DAEMON-1
2026-06-04T13:05:23.1357512Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T13:05:23.1358139Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1358173Z 
2026-06-04T13:05:23.1358696Z ### REQ-DAEMON-2
2026-06-04T13:05:23.1359511Z - Title: Broker/brain split for seamless self-update
2026-06-04T13:05:23.1360130Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1360155Z 
2026-06-04T13:05:23.1360635Z ### REQ-DAEMON-3
2026-06-04T13:05:23.1361494Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T13:05:23.1362038Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1362058Z 
2026-06-04T13:05:23.1362507Z ### REQ-DAEMON-4
2026-06-04T13:05:23.1363117Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T13:05:23.1363645Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1363669Z 
2026-06-04T13:05:23.1364153Z ### REQ-STORE-1
2026-06-04T13:05:23.1370356Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T13:05:23.1370931Z - Required stages: impl, unit
2026-06-04T13:05:23.1370950Z 
2026-06-04T13:05:23.1371410Z ### REQ-MANIFEST-1
2026-06-04T13:05:23.1372415Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T13:05:23.1372955Z - Required stages: doc, impl, unit
2026-06-04T13:05:23.1372977Z 
2026-06-04T13:05:23.1373444Z ### REQ-SEAM-SPAWN
2026-06-04T13:05:23.1373937Z - Title: spawn-session seam
2026-06-04T13:05:23.1374441Z - Required stages: impl, unit
2026-06-04T13:05:23.1374461Z 
2026-06-04T13:05:23.1374931Z ### REQ-SEAM-POSTSPAWN
2026-06-04T13:05:23.1375603Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T13:05:23.1376106Z - Required stages: impl, unit
2026-06-04T13:05:23.1376125Z 
2026-06-04T13:05:23.1376580Z ### REQ-SEAM-PSYCHE
2026-06-04T13:05:23.1377278Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T13:05:23.1377808Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1377827Z 
2026-06-04T13:05:23.1378299Z ### REQ-SEAM-HISTORY
2026-06-04T13:05:23.1379326Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T13:05:23.1380208Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1380228Z 
2026-06-04T13:05:23.1380705Z ### REQ-SEAM-ACTIVITY
2026-06-04T13:05:23.1381668Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T13:05:23.1382177Z - Required stages: impl, unit
2026-06-04T13:05:23.1382199Z 
2026-06-04T13:05:23.1382662Z ### REQ-SEAM-INJECT
2026-06-04T13:05:23.1383769Z - Title: inject-input methods configurable per activity-state
2026-06-04T13:05:23.1384324Z - Required stages: impl, unit
2026-06-04T13:05:23.1384347Z 
2026-06-04T13:05:23.1384818Z ### REQ-SEAM-RESUME
2026-06-04T13:05:23.1385842Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T13:05:23.1386357Z - Required stages: impl, unit
2026-06-04T13:05:23.1386658Z 
2026-06-04T13:05:23.1387193Z ### REQ-SEAM-CAPABILITY
2026-06-04T13:05:23.1387970Z - Title: Hostable endpoint-types capability declaration
2026-06-04T13:05:23.1388492Z - Required stages: impl, unit
2026-06-04T13:05:23.1388511Z 
2026-06-04T13:05:23.1388992Z ### REQ-SEAM-UPDATE
2026-06-04T13:05:23.1390102Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T13:05:23.1390767Z - Required stages: impl, unit
2026-06-04T13:05:23.1390788Z 
2026-06-04T13:05:23.1391227Z ### REQ-API-1
2026-06-04T13:05:23.1392116Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T13:05:23.1392638Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1392657Z 
2026-06-04T13:05:23.1393080Z ### REQ-API-2
2026-06-04T13:05:23.1394224Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T13:05:23.1394747Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1394764Z 
2026-06-04T13:05:23.1395202Z ### REQ-API-3
2026-06-04T13:05:23.1395889Z - Title: commune/signoff are file-drops, not commands
2026-06-04T13:05:23.1396402Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1396421Z 
2026-06-04T13:05:23.1396858Z ### REQ-START-1
2026-06-04T13:05:23.1397901Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T13:05:23.1398415Z - Required stages: impl, unit
2026-06-04T13:05:23.1398445Z 
2026-06-04T13:05:23.1398889Z ### REQ-START-2
2026-06-04T13:05:23.1399930Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T13:05:23.1400457Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1400477Z 
2026-06-04T13:05:23.1400906Z ### REQ-START-3
2026-06-04T13:05:23.1401808Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T13:05:23.1402325Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1402343Z 
2026-06-04T13:05:23.1402771Z ### REQ-START-4
2026-06-04T13:05:23.1403464Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T13:05:23.1403967Z - Required stages: impl, unit
2026-06-04T13:05:23.1403989Z 
2026-06-04T13:05:23.1404422Z ### REQ-EP-1
2026-06-04T13:05:23.1405066Z - Title: Day-one endpoint types; open type system
2026-06-04T13:05:23.1405559Z - Required stages: impl, unit
2026-06-04T13:05:23.1405578Z 
2026-06-04T13:05:23.1415084Z ### REQ-EP-2
2026-06-04T13:05:23.1416209Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T13:05:23.1416772Z - Required stages: impl, unit
2026-06-04T13:05:23.1416794Z 
2026-06-04T13:05:23.1417243Z ### REQ-EP-3
2026-06-04T13:05:23.1418282Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T13:05:23.1418795Z - Required stages: impl, unit
2026-06-04T13:05:23.1418813Z 
2026-06-04T13:05:23.1419324Z ### REQ-EP-4
2026-06-04T13:05:23.1420201Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T13:05:23.1420706Z - Required stages: impl, unit
2026-06-04T13:05:23.1420723Z 
2026-06-04T13:05:23.1421149Z ### REQ-EP-5
2026-06-04T13:05:23.1425553Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T13:05:23.1426021Z - Required stages: 
2026-06-04T13:05:23.1426041Z 
2026-06-04T13:05:23.1426472Z ### REQ-INST-1
2026-06-04T13:05:23.1427300Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T13:05:23.1427758Z - Required stages: 
2026-06-04T13:05:23.1427775Z 
2026-06-04T13:05:23.1428200Z ### REQ-INST-2
2026-06-04T13:05:23.1428780Z - Title: Per-node files, synced Psyche mind
2026-06-04T13:05:23.1429448Z - Required stages: impl, unit
2026-06-04T13:05:23.1429469Z 
2026-06-04T13:05:23.1430089Z ### REQ-INST-3
2026-06-04T13:05:23.1430833Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T13:05:23.1431347Z - Required stages: doc, impl, unit
2026-06-04T13:05:23.1431364Z 
2026-06-04T13:05:23.1431801Z ### REQ-INST-4
2026-06-04T13:05:23.1433007Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T13:05:23.1433515Z - Required stages: impl, unit
2026-06-04T13:05:23.1433533Z 
2026-06-04T13:05:23.1433970Z ### REQ-INST-5
2026-06-04T13:05:23.1434889Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T13:05:23.1435394Z - Required stages: impl, unit
2026-06-04T13:05:23.1435542Z 
2026-06-04T13:05:23.1435976Z ### REQ-INST-6
2026-06-04T13:05:23.1436976Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T13:05:23.1437431Z - Required stages: 
2026-06-04T13:05:23.1437464Z 
2026-06-04T13:05:23.1437893Z ### REQ-INST-7
2026-06-04T13:05:23.1438571Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T13:05:23.1439068Z - Required stages: impl, unit
2026-06-04T13:05:23.1439085Z 
2026-06-04T13:05:23.1439756Z ### REQ-INST-8
2026-06-04T13:05:23.1440720Z - Title: Remote-control mode distinct from local operation
2026-06-04T13:05:23.1441226Z - Required stages: impl, unit
2026-06-04T13:05:23.1441257Z 
2026-06-04T13:05:23.1441700Z ### REQ-INST-9
2026-06-04T13:05:23.1442693Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T13:05:23.1443201Z - Required stages: impl, unit
2026-06-04T13:05:23.1443219Z 
2026-06-04T13:05:23.1443641Z ### REQ-INST-10
2026-06-04T13:05:23.1444805Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T13:05:23.1445318Z - Required stages: impl, unit
2026-06-04T13:05:23.1445337Z 
2026-06-04T13:05:23.1445762Z ### REQ-INST-11
2026-06-04T13:05:23.1446933Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T13:05:23.1447424Z - Required stages: impl, unit
2026-06-04T13:05:23.1447441Z 
2026-06-04T13:05:23.1447885Z ### REQ-INST-12
2026-06-04T13:05:23.1449958Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T13:05:23.1450460Z - Required stages: impl, unit
2026-06-04T13:05:23.1450490Z 
2026-06-04T13:05:23.1450932Z ### REQ-INST-13
2026-06-04T13:05:23.1451901Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T13:05:23.1452408Z - Required stages: impl, unit
2026-06-04T13:05:23.1452425Z 
2026-06-04T13:05:23.1452874Z ### REQ-INST-14
2026-06-04T13:05:23.1455497Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T13:05:23.1456096Z - Required stages: 
2026-06-04T13:05:23.1456126Z 
2026-06-04T13:05:23.1456594Z ### REQ-INST-15
2026-06-04T13:05:23.1461607Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T13:05:23.1462102Z - Required stages: 
2026-06-04T13:05:23.1462122Z 
2026-06-04T13:05:23.1462564Z ### REQ-REACH-1
2026-06-04T13:05:23.1463348Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T13:05:23.1463864Z - Required stages: impl, unit
2026-06-04T13:05:23.1463883Z 
2026-06-04T13:05:23.1464342Z ### REQ-REACH-2
2026-06-04T13:05:23.1465152Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T13:05:23.1465619Z - Required stages: 
2026-06-04T13:05:23.1465637Z 
2026-06-04T13:05:23.1466091Z ### REQ-MSG-1
2026-06-04T13:05:23.1469013Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T13:05:23.1469745Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1469765Z 
2026-06-04T13:05:23.1470191Z ### REQ-MSG-2
2026-06-04T13:05:23.1471722Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T13:05:23.1472223Z - Required stages: impl, unit
2026-06-04T13:05:23.1472241Z 
2026-06-04T13:05:23.1473019Z ### REQ-MSG-3
2026-06-04T13:05:23.1475367Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T13:05:23.1475886Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1475904Z 
2026-06-04T13:05:23.1476356Z ### REQ-NODE-IDENTITY
2026-06-04T13:05:23.1477614Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T13:05:23.1478228Z - Required stages: impl, unit
2026-06-04T13:05:23.1478247Z 
2026-06-04T13:05:23.1478678Z ### REQ-NET-1
2026-06-04T13:05:23.1480008Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T13:05:23.1480505Z - Required stages: impl, unit
2026-06-04T13:05:23.1480526Z 
2026-06-04T13:05:23.1480959Z ### REQ-NET-2
2026-06-04T13:05:23.1481889Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T13:05:23.1482437Z - Required stages: impl
2026-06-04T13:05:23.1482458Z 
2026-06-04T13:05:23.1482900Z ### REQ-NET-3
2026-06-04T13:05:23.1483753Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T13:05:23.1484256Z - Required stages: impl, unit
2026-06-04T13:05:23.1484274Z 
2026-06-04T13:05:23.1484706Z ### REQ-PAIR-1
2026-06-04T13:05:23.1485226Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T13:05:23.1485716Z - Required stages: impl, unit
2026-06-04T13:05:23.1485748Z 
2026-06-04T13:05:23.1486191Z ### REQ-PAIR-2
2026-06-04T13:05:23.1486867Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T13:05:23.1487358Z - Required stages: impl, unit
2026-06-04T13:05:23.1487379Z 
2026-06-04T13:05:23.1487828Z ### REQ-PAIR-3
2026-06-04T13:05:23.1488566Z - Title: Fetch current pairing code from any paired node
2026-06-04T13:05:23.1489072Z - Required stages: impl, unit
2026-06-04T13:05:23.1489094Z 
2026-06-04T13:05:23.1489586Z ### REQ-PAIR-4
2026-06-04T13:05:23.1490114Z - Title: Subnet naming on first pairing
2026-06-04T13:05:23.1490622Z - Required stages: impl, unit
2026-06-04T13:05:23.1490654Z 
2026-06-04T13:05:23.1491086Z ### REQ-PAIR-5
2026-06-04T13:05:23.1492863Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T13:05:23.1493362Z - Required stages: impl, unit
2026-06-04T13:05:23.1493384Z 
2026-06-04T13:05:23.1493816Z ### REQ-PAIR-6
2026-06-04T13:05:23.1495306Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T13:05:23.1495812Z - Required stages: impl, unit
2026-06-04T13:05:23.1495830Z 
2026-06-04T13:05:23.1496275Z ### REQ-PAIR-7
2026-06-04T13:05:23.1497113Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T13:05:23.1497561Z - Required stages: 
2026-06-04T13:05:23.1497578Z 
2026-06-04T13:05:23.1498005Z ### REQ-SEC-1
2026-06-04T13:05:23.1500468Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T13:05:23.1500979Z - Required stages: impl, unit
2026-06-04T13:05:23.1501010Z 
2026-06-04T13:05:23.1501454Z ### REQ-NOTIF-1
2026-06-04T13:05:23.1503670Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T13:05:23.1504180Z - Required stages: impl, unit
2026-06-04T13:05:23.1504198Z 
2026-06-04T13:05:23.1504627Z ### REQ-NOTIF-2
2026-06-04T13:05:23.1506183Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T13:05:23.1506712Z - Required stages: doc, impl, unit
2026-06-04T13:05:23.1506731Z 
2026-06-04T13:05:23.1507154Z ### REQ-UPD-1
2026-06-04T13:05:23.1507728Z - Title: Peer-propagated update over P2P
2026-06-04T13:05:23.1508219Z - Required stages: impl, unit
2026-06-04T13:05:23.1508239Z 
2026-06-04T13:05:23.1508677Z ### REQ-UPD-2
2026-06-04T13:05:23.1509447Z - Title: All binaries signature-verified before handoff
2026-06-04T13:05:23.1509949Z - Required stages: impl, unit
2026-06-04T13:05:23.1510114Z 
2026-06-04T13:05:23.1510562Z ### REQ-UPD-3
2026-06-04T13:05:23.1511462Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T13:05:23.1511984Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1512003Z 
2026-06-04T13:05:23.1512437Z ### REQ-UPD-4
2026-06-04T13:05:23.1513397Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T13:05:23.1514037Z - Required stages: impl, unit
2026-06-04T13:05:23.1514058Z 
2026-06-04T13:05:23.1514480Z ### REQ-UPD-5
2026-06-04T13:05:23.1515187Z - Title: spt-core ripple-updates registered adapters
2026-06-04T13:05:23.1515676Z - Required stages: impl, unit
2026-06-04T13:05:23.1515708Z 
2026-06-04T13:05:23.1516140Z ### REQ-TERM-1
2026-06-04T13:05:23.1517049Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T13:05:23.1517540Z - Required stages: impl, unit
2026-06-04T13:05:23.1517558Z 
2026-06-04T13:05:23.1517994Z ### REQ-TERM-2
2026-06-04T13:05:23.1518956Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T13:05:23.1519512Z - Required stages: impl, unit
2026-06-04T13:05:23.1519534Z 
2026-06-04T13:05:23.1519975Z ### REQ-TERM-3
2026-06-04T13:05:23.1520669Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T13:05:23.1521172Z - Required stages: impl, unit
2026-06-04T13:05:23.1521191Z 
2026-06-04T13:05:23.1521616Z ### REQ-TERM-4
2026-06-04T13:05:23.1523840Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T13:05:23.1524362Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1524381Z 
2026-06-04T13:05:23.1524813Z ### REQ-FRONT-1
2026-06-04T13:05:23.1525735Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T13:05:23.1526184Z - Required stages: 
2026-06-04T13:05:23.1526202Z 
2026-06-04T13:05:23.1526654Z ### REQ-INSTALL-1
2026-06-04T13:05:23.1527702Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T13:05:23.1528164Z - Required stages: 
2026-06-04T13:05:23.1528182Z 
2026-06-04T13:05:23.1528631Z ### REQ-INSTALL-2
2026-06-04T13:05:23.1529352Z - Title: Marketplace-repackaging-friendly install
2026-06-04T13:05:23.1529819Z - Required stages: 
2026-06-04T13:05:23.1529841Z 
2026-06-04T13:05:23.1530287Z ### REQ-INSTALL-3
2026-06-04T13:05:23.1530971Z - Title: Idempotent + interactive-optional first run
2026-06-04T13:05:23.1531441Z - Required stages: 
2026-06-04T13:05:23.1531459Z 
2026-06-04T13:05:23.1531898Z ### REQ-INSTALL-4
2026-06-04T13:05:23.1536013Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T13:05:23.1536483Z - Required stages: 
2026-06-04T13:05:23.1536502Z 
2026-06-04T13:05:23.1536945Z ### REQ-MIGRATE-1
2026-06-04T13:05:23.1537842Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T13:05:23.1538302Z - Required stages: 
2026-06-04T13:05:23.1538318Z 
2026-06-04T13:05:23.1538759Z ### REQ-INFRA-1
2026-06-04T13:05:23.1539758Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T13:05:23.1540216Z - Required stages: 
2026-06-04T13:05:23.1540234Z 
2026-06-04T13:05:23.1540675Z ### REQ-DOCS-1
2026-06-04T13:05:23.1541752Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T13:05:23.1542229Z - Required stages: 
2026-06-04T13:05:23.1542249Z 
2026-06-04T13:05:23.1542680Z ### REQ-DOCS-2
2026-06-04T13:05:23.1543524Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T13:05:23.1543985Z - Required stages: 
2026-06-04T13:05:23.1544002Z 
2026-06-04T13:05:23.1544428Z ### REQ-DOCS-3
2026-06-04T13:05:23.1545511Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T13:05:23.1545963Z - Required stages: 
2026-06-04T13:05:23.1545979Z 
2026-06-04T13:05:23.1546418Z ### REQ-DOCS-4
2026-06-04T13:05:23.1547652Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T13:05:23.1548106Z - Required stages: 
2026-06-04T13:05:23.1548128Z 
2026-06-04T13:05:23.1548569Z ### REQ-DOCS-5
2026-06-04T13:05:23.1549657Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T13:05:23.1550126Z - Required stages: 
2026-06-04T13:05:23.1550143Z 
2026-06-04T13:05:23.1550845Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T13:05:23.1551864Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T13:05:23.1552371Z - Required stages: impl, unit
2026-06-04T13:05:23.1552388Z 
2026-06-04T13:05:23.1552929Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T13:05:23.1553706Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T13:05:23.1560274Z - Required stages: impl, unit
2026-06-04T13:05:23.1560360Z 
2026-06-04T13:05:23.1560969Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T13:05:23.1561642Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T13:05:23.1562139Z - Required stages: 
2026-06-04T13:05:23.1562156Z 
2026-06-04T13:05:23.1562666Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T13:05:23.1563660Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T13:05:23.1564162Z - Required stages: impl, unit
2026-06-04T13:05:23.1564182Z 
2026-06-04T13:05:23.1564673Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T13:05:23.1565663Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T13:05:23.1566152Z - Required stages: impl, unit
2026-06-04T13:05:23.1566169Z 
2026-06-04T13:05:23.1566715Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T13:05:23.1567748Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T13:05:23.1568195Z - Required stages: 
2026-06-04T13:05:23.1568214Z 
2026-06-04T13:05:23.1568730Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T13:05:23.1569438Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T13:05:23.1569912Z - Required stages: 
2026-06-04T13:05:23.1569940Z 
2026-06-04T13:05:23.1570501Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T13:05:23.1571348Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T13:05:23.1571853Z - Required stages: impl, unit
2026-06-04T13:05:23.1571870Z 
2026-06-04T13:05:23.1572369Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T13:05:23.1573118Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T13:05:23.1573633Z - Required stages: impl, int
2026-06-04T13:05:23.1573652Z 
2026-06-04T13:05:23.1574183Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T13:05:23.1575031Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T13:05:23.1575528Z - Required stages: impl, unit
2026-06-04T13:05:23.1575548Z 
2026-06-04T13:05:23.1576121Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T13:05:23.1576998Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T13:05:23.1577488Z - Required stages: impl, unit
2026-06-04T13:05:23.1577506Z 
2026-06-04T13:05:23.1578055Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T13:05:23.1579072Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T13:05:23.1579647Z - Required stages: impl, unit
2026-06-04T13:05:23.1579668Z 
2026-06-04T13:05:23.1580227Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T13:05:23.1581031Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T13:05:23.1581536Z - Required stages: impl, unit
2026-06-04T13:05:23.1581566Z 
2026-06-04T13:05:23.1582119Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T13:05:23.1583052Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T13:05:23.1583546Z - Required stages: impl, unit
2026-06-04T13:05:23.1583576Z 
2026-06-04T13:05:23.1584119Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T13:05:23.1585314Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T13:05:23.1585805Z - Required stages: impl, unit
2026-06-04T13:05:23.1585824Z 
2026-06-04T13:05:23.1586310Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T13:05:23.1587962Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T13:05:23.1588496Z - Required stages: impl, unit
2026-06-04T13:05:23.1588513Z 
2026-06-04T13:05:23.1589066Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T13:05:23.1590126Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T13:05:23.1590811Z - Required stages: impl, unit
2026-06-04T13:05:23.1590832Z 
2026-06-04T13:05:23.1591375Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T13:05:23.1592844Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T13:05:23.1593347Z - Required stages: impl, unit
2026-06-04T13:05:23.1593367Z 
2026-06-04T13:05:23.1593907Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T13:05:23.1595967Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T13:05:23.1596485Z - Required stages: doc, impl, unit
2026-06-04T13:05:23.1596529Z 
2026-06-04T13:05:23.1597078Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T13:05:23.1599497Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T13:05:23.1599999Z - Required stages: impl, unit
2026-06-04T13:05:23.1600018Z 
2026-06-04T13:05:23.1600592Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T13:05:23.1601235Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T13:05:23.1601723Z - Required stages: impl, unit
2026-06-04T13:05:23.1601741Z 
2026-06-04T13:05:23.1602254Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T13:05:23.1602896Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T13:05:23.1603391Z - Required stages: impl, unit
2026-06-04T13:05:23.1603408Z 
2026-06-04T13:05:23.1603943Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T13:05:23.1604761Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T13:05:23.1605262Z - Required stages: impl, unit
2026-06-04T13:05:23.1605295Z 
2026-06-04T13:05:23.1605787Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T13:05:23.1606652Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T13:05:23.1607167Z - Required stages: impl, unit
2026-06-04T13:05:23.1607206Z 
2026-06-04T13:05:23.1607919Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T13:05:23.1608849Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T13:05:23.1609418Z - Required stages: impl, unit
2026-06-04T13:05:23.1609439Z 
2026-06-04T13:05:23.1609965Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T13:05:23.1610745Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T13:05:23.1611243Z - Required stages: impl, unit
2026-06-04T13:05:23.1611260Z 
2026-06-04T13:05:23.1611802Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T13:05:23.1612789Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T13:05:23.1613288Z - Required stages: impl, unit
2026-06-04T13:05:23.1613321Z 
2026-06-04T13:05:23.1613811Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T13:05:23.1614860Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T13:05:23.1615363Z - Required stages: impl, unit
2026-06-04T13:05:23.1615382Z 
2026-06-04T13:05:23.1615911Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T13:05:23.1616820Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T13:05:23.1617332Z - Required stages: impl, unit
2026-06-04T13:05:23.1617350Z 
2026-06-04T13:05:23.1617921Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T13:05:23.1618671Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T13:05:23.1619201Z - Required stages: impl, unit
2026-06-04T13:05:23.1619222Z 
2026-06-04T13:05:23.1619806Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T13:05:23.1621008Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T13:05:23.1621517Z - Required stages: impl, unit
2026-06-04T13:05:23.1621537Z 
2026-06-04T13:05:23.1622305Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-04T13:05:23.1625969Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-04T13:05:23.1626486Z - Required stages: impl, unit
2026-06-04T13:05:23.1626504Z 
2026-06-04T13:05:23.1627114Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T13:05:23.1628319Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T13:05:23.1628834Z - Required stages: impl, unit
2026-06-04T13:05:23.1628854Z 
2026-06-04T13:05:23.1629395Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T13:05:23.1630582Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T13:05:23.1631076Z - Required stages: impl, unit
2026-06-04T13:05:23.1631092Z 
2026-06-04T13:05:23.1631633Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T13:05:23.1633170Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T13:05:23.1633699Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1633718Z 
2026-06-04T13:05:23.1634243Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T13:05:23.1635739Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T13:05:23.1636250Z - Required stages: impl, unit
2026-06-04T13:05:23.1636282Z 
2026-06-04T13:05:23.1636855Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T13:05:23.1639526Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T13:05:23.1640056Z - Required stages: impl, unit, int
2026-06-04T13:05:23.1640073Z 
2026-06-04T13:05:23.1640629Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T13:05:23.1645376Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T13:05:23.1645919Z - Required stages: impl, unit
2026-06-04T13:05:23.1645939Z 
2026-06-04T13:05:23.1646507Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T13:05:23.1650841Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T13:05:23.1651329Z - Required stages: 
2026-06-04T13:05:23.1651348Z 
2026-06-04T13:05:23.1651901Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T13:05:23.1655691Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T13:05:23.1656195Z - Required stages: impl, unit
2026-06-04T13:05:23.1656242Z 
2026-06-04T13:05:23.1656779Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T13:05:23.1660251Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T13:05:23.1660756Z - Required stages: impl, unit
2026-06-04T13:05:23.1660790Z 
2026-06-04T13:05:23.1661321Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T13:05:23.1666510Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T13:05:23.1667016Z - Required stages: impl, unit
2026-06-04T13:05:23.1667033Z 
2026-06-04T13:05:23.1667556Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T13:05:23.1672271Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-04T13:05:23.1672973Z - Required stages: doc, impl, unit
2026-06-04T13:05:23.1672995Z 
2026-06-04T13:05:23.1673456Z ## How to report back
2026-06-04T13:05:23.1673476Z 
2026-06-04T13:05:23.1674525Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T13:05:23.1674548Z 
2026-06-04T13:05:23.1674966Z     {
2026-06-04T13:05:23.1675485Z       "code": "requirement_quality",
2026-06-04T13:05:23.1675984Z       "requirementId": "REQ-...",
2026-06-04T13:05:23.1676900Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T13:05:23.1677391Z       "message": "<short reason>",
2026-06-04T13:05:23.1677992Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T13:05:23.1678405Z     }
2026-06-04T13:05:23.1678421Z 
2026-06-04T13:05:23.1679495Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T13:05:23.1680294Z deterministic findings above don't need to be repeated.
